home *** CD-ROM | disk | FTP | other *** search
-
-
- -----------------------------------------------------------
- Explanation of the contents of ~4Dgifts/toolbox/lib/mathlib
- -----------------------------------------------------------
-
- The math libraries included herein have been updated to Irix 5.1.
- Everything has been recompiled and tested. Different versions
- have been added for mips1 and mips2, serial and parallel. The
- BLAS .a file's have been pulled out since they are available with
- the Irix 5.1 compilers.
-
-
- This subtree contains examples and demos for 3 math libraries,
- libblas.a, libconv.a and libfft.a, as well as the libraries
- libconv.a and libfft.a, a parallel implementation of a Merge-Sort
- Algorithm, psort, and skylib.a, a library of Fortran 77 routines
- for solving banded linear systems of equations with variable band
- width.
-
- The following is lifted out of libblas/README, libconv/README,
- libfft/README, psort/README, and skyline/README respectively:
-
-
-
- =======
- libblas
- ============================================================================
- This directory contains the test programs, a demo program and the original
- source code for the BLAS (Basic Linear Algebra Subprograms). Optimized and
- parallelized versions of the BLAS for SGI platforms are available in a
- library, libblas. This library is provided with the SGI compilers and there
- are 4 different versions. The BLAS are also available in SGI's Scientific
- Library "complib", which is available with the Fortran 4.0+ compiler.
-
- /usr/lib/libblas.a: compiled with "-O2 " flags,
- will run on all systems.
- This is NOT a parallel version.
-
- /usr/lib/libblas_mp.a: compiled with "-O2 -mp"
- will run on all systems.
- Requires Fortran compilers since it uses
- the Fortran MP library.
- This version will run in parallel on
- Power Series systems.
-
- /usr/lib/mips2/libblas.a: compiled with "-O2 -mips2 " flags,
- will run only on systems with R4000 CPUs,
- This is NOT a parallel version.
-
- /usr/lib/mips2/libblas_mp.a: compiled with "-O2 -mips2 -mp" flags,
- will run only on systems with R4000 CPUs,
- Requires Fortran compilers since it uses
- the Fortran MP library.
- This version will run in parallel on
- Challenge and Onyx systems.
-
-
- BLAS : Basic Linear Algebra Subprograms
- There are three levels of BLAS:
-
- Level 1 BLAS: for vector operations such as y <- alpha*x + y
- Level 2 BLAS: for matrix vector ops such as y <- alpha*A*x + beta*y
- Level 3 BLAS: for matrix-matrix ops such as C <- alpha*A*B + beta*C
-
- Here A, B and C are matrices, x and y are vectors and alpha and beta
- are scalars.
-
- [ . . . ]
-
- LINPACK is a Fortran set of subroutines which analyze and solve various
- systems of simultaneous linear algebraic equations. It uses a
- subset of the Level 1 BLAS.
-
- LAPACK (Linear Algebra PACKage) puts together a new set of linear algebra
- functions, supposed to supplant both LINPACK and EISPACK packages.
- To achieve maximum efficiency across all types of hardware, the
- LAPACK routines are based on matrix-matrix BLAS 3 routines (e.g.
- DGEMM). This implementation is much more performant than anything
- based on vector-vector Level 1 BLAS routines (e.g. DAXPY), or even
- matrix-vector Level 2 BLAS routines (e.g. DGEMV).
-
- The directory ludec contains an example program that graphically demonstrates
- the performance difference between the LU factorization in LINPACK, and the
- corresponding routine from LAPACK. To create the program, modify the Makefile
- to use the correct libblas version for your machine. Then, simply type make
- in the ludec directory. Type RUNTEST to run it.
-
-
-
-
- =======
- libconv
- ============================================================================
-
- LIBCONV is an optimized library available on Silicon Graphics computers.
- It features Convolutions for Finite Impulse Response (FIR) and Infinite
- Impulse Response (IIR) filters, together with correlations. The library
- modules take 1D and 2D inputs and are available in single and double
- precision for real and complex arithmetic. The 2D subroutines have been
- parallelized and take full advantage of SGI's parallel architecture.
-
- The library comes in three formats:
-
- o mips1: compilation flags -O2,
- will run on all systems,
- can be link with C or Fortran compilers.
- This is NOT a parallel version.
-
- o mips2: compiled with the "-O2 -mips2" flags,
- will run only on systems with R4000 CPUs,
- can be used with both C and Fortran compilers.
- This is NOT a parallel version.
-
- o mp_mips1: compiled "-O2 -mp"
- will run all systems.
- Requires Fortran compilers since it uses the Fortran MP library.
- This version will run in parallel on Power Series systems.
-
-
- The EXAMPLES directory contains examples of programs, both in C and in
- Fortran, using LIBCONV modules.
-
-
-
-
- ======
- libfft
- ============================================================================
- # libfft includes one, two and three dimensional FFTs #
- # complex <---> complex #
- # real <---> complex #
- # single and double precision, #
- # 2D and 3D are parallel #
- # #
- # libfft uses a "row-column" algorithm, and it is based on 1D FFTs #
- # from FFTPACK #
- # #
- # FFTPACK is a 1D FFTs package written by Paul N Swarztrauber #
- # at National Center for Atmospheric Research Boulder,CO #
- Libfft Version 2.3 is very similar to Version 2.2,
- the only changes made fix a minor bug with SFFT2DU and DFFT2DU.
-
- The current library comes in four formats:
-
- o mips1: compilation flags -O2,
- will run on all systems,
- can be link with C or Fortran compilers.
- This is NOT a parallel version.
-
- o mips2: compiled with the "-O2 -mips2" flags,
- will run only on systems with R4000 CPUs,
- can be used with both C and Fortran compilers.
- This is NOT a parallel version.
-
- o mp_mips1: compiled "-O2 -mp"
- will run all systems.
- Requires Fortran compilers since it uses the Fortran MP library.
- This version will run in parallel on Power Series systems.
-
- o mp_mips2: compiled "-O2 -mips2 -mp" (ELF format)
- will run all Challenge and Onyx systems only.
- Requires Fortran compilers since it uses the Fortran MP library.
- This version will run in parallel.
-
- Note the "mp_mips2" versions was compiled under Irix5.0 and the corresponding
- compilers. The object files use the new ELF format, while the other three
- versons of the library use the classical COFF format.
-
-
-
-
- =====
- psort
- ============================================================================
- * PSORT is Parallel implementation of the Merge-Sort Algorithm. *
- * *
- * Sub-arrays of doubling size are iteratively merge together, *
- * until the whole array is sorted. *
- * Hence at each of the Log(N) steps N/2, N/4, N/8 ... 1 Merge(s) *
- * are performed independantly. *
- * To get even more parallelism, the final Merges are split into *
- * independant submerges *
- * *
- * The "psort" calling sequence is the same as for the C Library "qsort" *
- * *
- * psort( base, nel, size, compar) *
- * *
- * base: array of elements to be sorted, *
- * nel: number of elements to be sorted, *
- * size: size of each element in byte, *
- * compar: pointer to a function that compare 2 elements. *
- * compar takes 2 pointers to elements as arguments *
- * and returns an integer. The integer returned is: *
- * < 0 if first element is smaller than the second *
- * == 0 if first element is equivallent to the second, *
- * > 0 if first element is larger than the second. *
- * *
- * *
- * ----------------------------------------------------------------- *
- * * To use PSORT, you must have Power C installed on your IRIS. * *
- * ----------------------------------------------------------------- *
-
-
-
-
- =======
- skyline
- ============================================================================
- SKYLIB
-
- SKYLIB is a library of Fortran 77 routines for solving linear systems
- of equations where the matrix is banded, with the bands varying in
- width, stored in a packed form known as skyline. These routines handle
- two types of matrices: symmetric (LDL**T factorization) and symmetric
- in shape, but not in values (LU factorization). Further details can
- be found below.
-
- [ . . . ]
-
-
- The routines for the skyline solver operate on matrices that are
- banded and symmetric in form and in values. The operations performed
- are the triangular factorization LDL(t) WITHOUT pivoting of
- matrices and the solution of simultaneous linear equations.
-
-
- [ . . . ]
-
- ( Note: The routines should be linked to the blas library by including
- ---- -lblas on the link command. Also, the system parameters need
- to be initialized before the factorization routines are called. )
-
-
-